Autogenerated HTML docs for v2.27.0-203-gf402e
diff --git a/technical/protocol-v2.html b/technical/protocol-v2.html index 4bcfb6a..4fd3703 100644 --- a/technical/protocol-v2.html +++ b/technical/protocol-v2.html
@@ -1132,14 +1132,28 @@ indicating its sideband (1, 2, or 3), and the server may send "0005\2" (a PKT-LINE of sideband 2 with no payload) as a keepalive packet.</code></pre> </div></div> -<div class="paragraph"><p>The response of <code>fetch</code> is broken into a number of sections separated by -delimiter packets (0001), with each section beginning with its section -header.</p></div> +<div class="paragraph"><p>If the <em>packfile-uris</em> feature is advertised, the following argument +can be included in the client’s request as well as the potential +addition of the <em>packfile-uris</em> section in the server’s response as +explained below.</p></div> <div class="literalblock"> <div class="content"> -<pre><code>output = *section -section = (acknowledgments | shallow-info | wanted-refs | packfile) - (flush-pkt | delim-pkt)</code></pre> +<pre><code>packfile-uris <comma-separated list of protocols> + Indicates to the server that the client is willing to receive + URIs of any of the given protocols in place of objects in the + sent packfile. Before performing the connectivity check, the + client should download from all given URIs. Currently, the + protocols supported are "http" and "https".</code></pre> +</div></div> +<div class="paragraph"><p>The response of <code>fetch</code> is broken into a number of sections separated by +delimiter packets (0001), with each section beginning with its section +header. Most sections are sent only when the packfile is sent.</p></div> +<div class="literalblock"> +<div class="content"> +<pre><code>output = acknowledgements flush-pkt | + [acknowledgments delim-pkt] [shallow-info delim-pkt] + [wanted-refs delim-pkt] [packfile-uris delim-pkt] + packfile flush-pkt</code></pre> </div></div> <div class="literalblock"> <div class="content"> @@ -1165,15 +1179,21 @@ </div></div> <div class="literalblock"> <div class="content"> +<pre><code>packfile-uris = PKT-LINE("packfile-uris" LF) *packfile-uri +packfile-uri = PKT-LINE(40*(HEXDIGIT) SP *%x20-ff LF)</code></pre> +</div></div> +<div class="literalblock"> +<div class="content"> <pre><code>packfile = PKT-LINE("packfile" LF) *PKT-LINE(%x01-03 *%x00-ff)</code></pre> </div></div> <div class="literalblock"> <div class="content"> <pre><code>acknowledgments section - * If the client determines that it is finished with negotiations - by sending a "done" line, the acknowledgments sections MUST be - omitted from the server's response.</code></pre> + * If the client determines that it is finished with negotiations by + sending a "done" line (thus requiring the server to send a packfile), + the acknowledgments sections MUST be omitted from the server's + response.</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -1259,12 +1279,6 @@ which the client has not indicated was shallow as a part of its request. </p> -</li> -<li> -<p> -This section is only included if a packfile section is also - included in the response. -</p> <div class="literalblock"> <div class="content"> <pre><code>wanted-refs section @@ -1291,6 +1305,31 @@ </p> <div class="literalblock"> <div class="content"> +<pre><code>packfile-uris section + * This section is only included if the client sent + 'packfile-uris' and the server has at least one such URI to + send.</code></pre> +</div></div> +</li> +<li> +<p> +Always begins with the section header "packfile-uris". +</p> +</li> +<li> +<p> +For each URI the server sends, it sends a hash of the pack’s + contents (as output by git index-pack) followed by the URI. +</p> +</li> +<li> +<p> +The hashes are 40 hex characters long. When Git upgrades to a new + hash algorithm, this might need to be updated. (It should match + whatever index-pack outputs after "pack\t" or "keep\t". +</p> +<div class="literalblock"> +<div class="content"> <pre><code>packfile section * This section is only included if the client has sent 'want' lines in its request and either requested that no more @@ -1344,7 +1383,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-06-08 18:30:54 PDT + 2020-06-25 14:07:29 PDT </div> </div> </body>